package com.qqt.csr.archive.response;

import com.qqt.csr.archive.entity.writer.ArchiveAccount;
import com.qqt.csr.archive.entity.writer.content.MsgContent;
import com.qqt.csr.common.sensitiveword.SensitiveWordMsg;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.index.Indexed;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * @Author: yang hao
 * @Date: 2024/11/28 10:31
 * @Description: 归档消息 响应
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "归档消息 响应")
public class ArchiveMessageResponse implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "id")
    private String oid;

    @Schema(description = "消息id")
    private String id;

    @Schema(description = "消息序列号")
    private String seq;

    @Schema(description = "消息发送方")
    private ArchiveAccount sender;

    @Schema(description = "消息接收方")
    private ArchiveAccount recipient;

    @Indexed(name = "idx_conId")
    @Schema(description = "会话id")
    private String conversationId;

    @Schema(description = "消息内容")
    private Object content;

    @Schema(description = "消息类型")
    private String type;

    @Schema(description = "人工客服-扩展信息")
    private String artificialExt;

    @Schema(description = "智能客服-扩展信息")
    private String smartExt;

    @Schema(description = "消息流类型")
    private String flow;

    @Schema(description = "是否删除")
    private String deleted;

    @Schema(description = "创建时间")
    private String createTime;

    @Schema(description = "更新时间")
    private String updateTime;

    @Schema(description = "房间id")
    private String roomId;

    @Schema(description = "命中的敏感词位置")
    private List<SensitiveWordMsg> sensitiveWords;

}
